<?php
	function crearNotificacion($idUsuarioOrigen, $nombreUsuarioOrigen, $idUsuarioDestino, $nombreUsuarioDestino, $torneo){
		$text = 'The user <strong>'.$nombreUsuarioOrigen.'</strong> invites you to play a <a href="index.php?s=tournament&id='.$torneo.'">couple tournament</a>';
		$values = array(NULL, time(), $idUsuarioOrigen, $idUsuarioDestino, $text, NOTIFICATION_NEW);
		$insert = new mysqlInsert("tournament", "", "notifications", $values);
		$insert->execute();
		$texto = '<p>The user <strong>'.$nombreUsuarioOrigen.'</strong> invites you to play a <a href="http://www.pes6j.net/tournament/index.php?s=tournament&id='.$torneo.'">couple tournament</a></p>';
		$texto .= '<p>Check this notification and accept or reject his invitation <a href="http://www.pes6j.net/tournament/index.php?s=notifications">here</a></p>';
		sendNotificationMail($idUsuarioDestino, $texto);
	}
	
	function checkNotificaciones($idUsuario){
		$query = new mysqlQuery("tournament", "", "notifications", "id", "`usuario_destino`='".$idUsuario."' AND `estado`='".NOTIFICATION_NEW."'", "", "");
		$query->execute();
		if($query->getCount() > 0){
			return TRUE;
		}
		return FALSE;
	}
	
	function obtenerEstadoTexto($estado){
		switch($estado){
			case NOTIFICATION_NEW: return "Open";
			case NOTIFICATION_ACCEPTED: return "Accepted";
			case NOTIFICATION_REJECTED: return "Rejected";
		}
	}
	
	function obtenerNotificacionesAbiertasEnviadas($idUsuario){
		$fechaLimite = time() - 604800;
		
		$q = "SELECT 	n.id as id,
								n.fecha as fecha, 
								n.texto as texto, 
								n.usuario_origen as usuario_origen, 
								n.usuario_destino as usuario_destino, 
								u.usuario as usuario_destino_nombre, 
								n.estado as estado, 
								n.torneo as torneo,
								t.nombre as nombre 
					FROM notifications as n, usuarios as u, torneo as t 
					WHERE t.id = n.torneo AND u.id = n.usuario_destino AND n.usuario_origen = '".$idUsuario."' AND 
					(n.estado = '".NOTIFICATION_NEW."' OR (n.estado = '".NOTIFICATION_REJECTED."' OR n.estado = '".NOTIFICATION_ACCEPTED."' AND n.fecha > '".$fechaLimite."')) 
					ORDER BY fecha DESC";
		
		$query = new mysqlQuery("tournament", $q, "", "", "", "", "");
		$query->execute();
		if($query->getCount() > 0){
			$n = 0;
			while($row = $query->next()){
				$n ++;
				if($n == $query->getCount())
					echo '<div class="notification" style="border-bottom:0;">';
				else 
					echo '<div class="notification">';
				echo '<strong>Sent to: </strong>'.obtenerEnlacePerfilJugador($row["usuario_destino"], $row["usuario_destino_nombre"]).' <br/>
							<strong>Sent on:</strong> '.unixDateToTextMS($row["fecha"]).'<br/>';
				echo '<strong>Tournament:</strong> <a href="index.php?=tournament&id='.$row["torneo"].'">'.$row["nombre"].'</a><br/>';
				echo '<strong>Status: '.obtenerEstadoTexto($row["estado"]).'</strong>';
				echo '</div>';
			}
		}else{
			echo '<p>Any notification open in the last week</p>';
		}
	}
	
	function obtenerNotificacionesAbiertasRecibidas($idUsuario){
		$fechaLimite = time() - 604800;
		
		$q = "SELECT 	n.id as id,
								n.fecha as fecha, 
								n.texto as texto, 
								n.usuario_origen as usuario_origen, 
								n.usuario_destino as usuario_destino, 
								u.usuario as usuario_origen_nombre, 
								n.estado as estado, 
								n.torneo as torneo,
								t.nombre as nombre 
					FROM notifications as n, usuarios as u, torneo as t 
					WHERE t.id = n.torneo AND u.id = n.usuario_origen AND n.usuario_destino = '".$idUsuario."' AND 
					(n.estado = '".NOTIFICATION_NEW."' OR (n.estado = '".NOTIFICATION_REJECTED."' OR n.estado = '".NOTIFICATION_ACCEPTED."' AND n.fecha > '".$fechaLimite."')) 
					ORDER BY fecha DESC";
		
		$query = new mysqlQuery("tournament", $q, "", "", "", "", "");
		$query->execute();
		if($query->getCount() > 0){
			$n = 0;
			while($row = $query->next()){
				$n ++;
				if($n == $query->getCount())
					echo '<div class="notification" style="border-bottom:0;">';
				else 
					echo '<div class="notification">';
				if($row["estado"] == NOTIFICATION_NEW){
					echo '<a href="index.php?s=notifications&action=accept-notification&id='.$row["id"].'" class="accept-button">Accept</a>';
					echo '<a href="index.php?s=notifications&action=reject-notification&id='.$row["id"].'" class="reject-button">Reject</a>';
				}
				echo '<strong>Received from: </strong>'.obtenerEnlacePerfilJugador($row["usuario_origen"], $row["usuario_origen_nombre"]).'<br/>
							<strong>Sent on:</strong> '.unixDateToTextMS($row["fecha"]).'<br/>';
				echo '<strong>Tournament:</strong> <a href="index.php?=tournament&id= '.$row["torneo"].'">'.$row["nombre"].'</a><br/>';				
				echo '<strong>Status: '.obtenerEstadoTexto($row["estado"]).'</strong>';
				echo '</div>';
			}
		}else{
			echo '<p>Any notification open in the last week</p>';
		}
	}
	
	function acceptMatchNotification($id){
		$query = new mysqlQuery("tournament", "", "notifications", "*", "`id`='".$id."' AND `estado`='".NOTIFICATION_NEW."'", "", "");
		$query->execute();
		if($query->getCount() == 1){
			$row = $query->next();
			$usuario = $row["usuario_origen"];
			$torneo = $row["torneo"];
			if($row["usuario_destino"] == $_SESSION["user_id"]){
				$fields = array("jugador2", "estado");
				$values = array($_SESSION["user_id"], 1);
				$update = new mysqlUpdate("tournament", "", "jugadores", $fields, $values, "`torneo`='".$torneo."' AND `jugador1`='".$usuario."'");
				$update->execute();
				
				$fields = array("estado");
				$values = array(NOTIFICATION_ACCEPTED);
				$update = new mysqlUpdate("tournament", "", "notifications", $fields, $values, "`id`='".$id."'");
				$update->execute();
				
				$texto = '<p>One of your Tournaments invitations has been accepted by another user. <a href="http://www.pes6j.net/tournament/">Check it here!</a></p>';
				sendNotificationMail($_SESSION["user_id"], $texto);
				
				return TRUE;
			}else{
				return FALSE;
			}
		}else{
			return FALSE;
		}
	}
	
	function rejectMatchNotification($id){
		$query = new mysqlQuery("tournament", "", "notifications", "*", "`id`='".$id."' AND `estado`='".NOTIFICATION_NEW."'", "", "");
		$query->execute();
		if($query->getCount() == 1){
			$row = $query->next();
			$usuario = $row["usuario_origen"];
			$torneo = $row["torneo"];
			if($row["usuario_destino"] == $_SESSION["user_id"]){
				$delete = new mysqlDelete("tournament", "", "notifications", "`torneo`='".$torneo."' AND `jugador1`='".$usuario."'");
				$delete->execute();
				
				$fields = array("estado");
				$values = array(NOTIFICATION_REJECTED);
				$update = new mysqlUpdate("tournament", "", "notifications", $fields, $values, "`id`='".$id."'");
				$update->execute();
				
				$texto = '<p>One of your Tournaments invitations has been rejected by another user. <a href="http://www.pes6j.net/tournament/">Check it here.</a></p>';
				sendNotificationMail($_SESSION["user_id"], $texto);
				
				return TRUE;
			}else{
				return FALSE;
			}	
		}else{
			return FALSE;
		}
	}
	
	function sendNotificationMail($idUsuario, $texto){
		$query = new mysqlQuery("tournament", "", "usuarios", "email", "`id`='".$idUsuario."'", "", "");
		$query->execute();
		if($row = $query->next()){
			require_once("lib/classes/MailQueue.php");
			$destination = $row["email"];
			$subject = "PES6J Tournament Notification";
			$body = "<p>You have received a notification from PES6J Tournament:</p>";
			$body .= $texto;
			$priority = 1;
			$mailQueue = new MailQueue();			
			$mailQueue->createMail($body, $subject, $destination, $priority);
			return TRUE;
		}else{
			return FALSE;
		}
	}
?>